package com.shuangti;

import java.util.Arrays;

public class Pactice {
    public static void main(String[] args) {
        //二分查找（一定要是有序的）
        int[] arr = {1,2,3,4,5,6};
        int left = 0;
        int right = arr.length-1;
        int mid = 0;
        int search = 2;
        for (int i = 0; i < arr.length; i++) {
            mid = (right+left)/2;
            if (arr[mid] == search){
                /*System.out.println(mid);*/
                break;
            }else if(arr[mid] > search){
                right = mid - 1;

            }else{
                left = mid + 1;

            }
        }
        //int i = Arrays.binarySearch(arr, 4);


//字符串
        String str = "helloworld";
        int length = str.length();//返回字符串长度
        char zifu = str.charAt(2);//给下标，返字符
        int xiabiao = str.indexOf('u');//给字符，返下标
        char[] arr_char = str.toCharArray();//将字符串转换为字符数组

        //堆：方法、引用数据类型
        //栈：基本数据类型

        String str1 = "tom";
        String str2 = "tom";
        String str3 = "TOM";

        str1.equals(str2);//字符串内容的比较
        str1.equalsIgnoreCase(str3);//字符串内容的比较，忽略大小写！
        str1.substring(1,2);//截取一段字符串，包前不包后
        str1.substring(1);//从开始直接截取到结束
        str1.replace("to","re");//新值替换旧值
        str1.contains("joan");//判断字符串是否包含该内容

        //字符串切割
        String s = "张三，里斯，王五，小白";
        String[] split = s.split("，");
        for(String a : split){
            System.out.println(a);
        }

        //字符串是不可改变的，因为Sting类是final修饰的

        /*字符串常量机制，字符串是一个开销很大的对象，频繁创建的话，会导致系统频繁增加，
         所以，字符串在创建时，系统会自动拿着它去堆里寻找有没有，有的话，则用之前的，没有，创建新的。*/
        String a = new String("hhh");//new,不会在堆里先找是否有了

        String s1 = "123";
        String s2 = "123";
        String s3 = new String("123");
        System.out.println(s1 == s2);//比房间号   true
        System.out.println(s1 == s3);//false
        System.out.println(s1.equals(s2));//true
        System.out.println(s1.equals(s2));//true

    }
}
